home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / Tools / Text-Viewer / Notes / deutsch / Violinenschlüssel.file < prev    next >
Text File  |  1999-11-06  |  41KB  |  1,370 lines

  1. /* Unterprogramm für "Noten.pprx" */
  2.  
  3. signal on halt
  4. signal on break_c
  5. signal on break_e
  6. signal on break_d
  7. call ppm_SetStyle(N)
  8. call ppm_SetMagMode(180)
  9. call ppm_UpdateScreen()
  10.  
  11.  
  12. noteneingabe:
  13.     /* Kleinster notenabstand */
  14.     sysart = "Notensystemart:2"
  15.     systemart = ppm_Getform("Bitte noch einmal die gewählte Systemart eingeben. (2, 1v oder 1b)", 3, sysart)
  16.     select
  17.     when systemart == '2' then zdist = 4
  18.     when systemart == '1v' then zdist = 2
  19.     when systemart == '1b' then zdist = 2
  20.     otherwise noteneingabe()
  21.     end
  22.     zdist2 = zdist-2
  23.     xgrdform = "(1,2,4,8 oder 16)"
  24.     xgrd = ppm_GetForm("Bitte für den kleinsten Notenwert eingeben ...(nichts=ABBRUCH)", 3, xgrdform)
  25.     if xgrd == '' then  exit_msg("Abbruch")
  26.     select
  27.      when xgrd == '1' then xg =0.7
  28.      when xgrd == '2' then xg =1.4
  29.      when xgrd == '4' then xg =2.8
  30.      when xgrd == '8' then xg =5.6
  31.      when xgrd == '16' then xg =11.2
  32.      otherwise noteneingabe()
  33.     end
  34.  
  35.    /* Punktgröße der Noten */
  36.    notepkt = 26
  37.    call ppm_SetJustification(0)
  38.    
  39.    zz = 0   /* Zeilenzähler */
  40.    notex = 3
  41.    page = ppm_CurrentPage()
  42.  
  43. pfad:
  44.    do
  45.            choose=ppm_Inform(2,"Auswahl des Notenfiles oder Abbruch ...", "Abbruch","File")
  46.            if choose == 0 then exit_msg("Abbruch")
  47.            eingabe = ppm_GetFileName("Bitte Notenscriptfile wählen ...", "Noten:")
  48.            res = OPEN(notenfile, eingabe, 'R')
  49.            if res == 0 then
  50.              do
  51.                  call ppm_inform(1,"Fehler in der Eingabe, oder File existiert nicht !!!","OK")
  52.                  pfad()
  53.              end
  54.            call ppm_ShowStatus("OK, ich arbeite ...")
  55.            auslesen(notenfile)
  56.     end
  57.  
  58.     /* x-Abstände der Noten zueinander */
  59. auslesen:
  60.         do
  61.           parse arg file
  62.           noten = READCH(file, 4000)
  63.           i=1
  64.           do forever
  65.             nw = word(noten, i)
  66.             nn = word(noten, i+1)
  67.             al = word(noten, i+2)
  68.             if nw == 'P' then nw = 'p'
  69.             if nw == 'D' then nw = 'd'
  70.             if nw == 'L' then nw = 'l'
  71.             if nw == 'T' then nw = 't'
  72.             if nn == 'T' then nn = 't'
  73.             if nw == 'J' then nw = 'j'
  74.             select
  75.               when al == (X2C(410a)) then al = 'a'
  76.               when al == (X2C(610a)) then al = 'a'
  77.               when al == (X2C(300a)) then al = '0'
  78.               otherwise exit_msg("Da war ein Fehler!")
  79.             end
  80.             if nw == 'E' then nw = 'e'
  81.             call auswahl()
  82.             i=i+3
  83.           end
  84.         end
  85.  
  86.  
  87.       select
  88.         when nn=='GB2' then nn = 'Gb2'
  89.         when nn=='AB2' then nn = 'Ab2'
  90.         when nn=='DB3' then nn = 'Db3'
  91.         when nn=='EB3' then nn = 'Eb3'
  92.         when nn=='GB3' then nn = 'Gb3'
  93.         when nn=='AB3' then nn = 'Ab3'
  94.         when nn=='DB4' then nn = 'Db4'
  95.         when nn=='EB4' then nn = 'Eb4'
  96.         when nn=='GB4' then nn = 'Gb4'
  97.         when nn=='AB4' then nn = 'Ab4'
  98.         when nn=='DB5' then nn = 'Db5'
  99.         when nn=='EB5' then nn = 'Eb5'
  100.         otherwise NOP
  101.       end
  102.  
  103. auswahl:
  104.  
  105. do
  106.     select
  107.       when nw == 'j' then do
  108.                           zz = 0   /* Zeilenzähler */
  109.                           notex = 3
  110.                           return
  111.                           end
  112.       when nw == 'e' then
  113.         do
  114.             call ppm_ClearStatus()
  115.             exit_msg("Geschafft!")
  116.         end
  117.       when nw=='s' then
  118.           do
  119.           xw = xg/16
  120.           nw='x'
  121.           yv = 0
  122.           end
  123.       when nw=='S' then
  124.           do
  125.           xw = xg/16
  126.           nw='X'
  127.           yv = 0.47
  128.           end
  129.       when nw=='a' then
  130.           do
  131.           xw = xg/8
  132.           nw='e'
  133.           yv = 0
  134.           end
  135.       when nw=='A' then
  136.           do
  137.           xw = xg/8
  138.           nw='E'
  139.           yv = 0.47
  140.           end
  141.       when nw=='v' then
  142.           do
  143.           xw = xg/4
  144.           nw='q'
  145.           yv = 0
  146.           end
  147.       when nw=='V' then
  148.           do
  149.           xw = xg/4
  150.           nw='Q'
  151.           yv = 0.47
  152.           end
  153.       when nw=='h' then
  154.           do
  155.           xw = xg/2
  156.           yv = 0
  157.           end
  158.       when nw=='H' then
  159.           do
  160.           xw = xg/2
  161.           yv = 0.47
  162.           end
  163.       when nw=='g' then
  164.           do
  165.           xw = xg
  166.           nw='w'
  167.           yv = 0
  168.           end
  169.       when nw=='G' then
  170.           do
  171.           xw = xg
  172.           nw='W'
  173.           yv = 0.47
  174.           end
  175.  
  176.      /* Sprung an den Anfang der Zeile */
  177.       when nw == 'left' then
  178.           do
  179.            call ppm_SetPagePosition(0, zz+1)
  180.           end
  181.  
  182.      /* Punkt nach der Note - muß als erstes eingegeben werden falls gewünscht
  183.         den nötigen Freiraum mit "sp" eingeben */
  184.  
  185.       when nw == 'pk' then
  186.           do
  187.             if notex < 3 then
  188.             do
  189.               notex = bakx
  190.               zz = zz - zdist
  191.               call ppm_SetSize(25)
  192.               box#id = ppm_CreateBox(notex+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  193.               call ppm_SetSize(20)
  194.               call ppm_TextIntoBox(box#id, 'd')
  195.             end
  196.             else
  197.             do
  198.               call ppm_SetSize(25)
  199.               box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  200.               call ppm_SetSize(20)
  201.               call ppm_TextIntoBox(box#id, 'd')
  202.             end
  203.            select
  204.                when nn == '1' then
  205.                do
  206.                xw = xg
  207.                notex = notex+xw
  208.                end
  209.                when nn == '2' then
  210.                do
  211.                xw = xg/2
  212.                notex = notex+xw
  213.                end
  214.                when nn == '4' then
  215.                do
  216.                xw = xg/4
  217.                notex = notex+xw
  218.                end
  219.                when nn == '8' then
  220.                do
  221.                xw = xg/8
  222.                notex = notex+xw
  223.                end
  224.                when nn == '16' then
  225.                do
  226.                xw  = xg/16
  227.                notex = notex+xw
  228.                end
  229.                when nn == 't' then
  230.                do
  231.                xw  = 0.2
  232.                notex = notex+xw
  233.                end
  234.                when nn == '0' then do
  235.                end
  236.                otherwise
  237.                do
  238.                 call ppm_ClearStatus()
  239.                 exit_msg("Da war ein Fehler")
  240.                end
  241.            end
  242.            if notex >=18.7 then
  243.                do
  244.                  notex = 2.5
  245.                  zz = zz + zdist
  246.                end
  247.            return
  248.           end
  249.  
  250.       when nw == 'PK' then
  251.           do
  252.             if notex < 3 then
  253.             do
  254.               notex = bakx
  255.               zz = zz - zdist
  256.               call ppm_SetSize(25)
  257.               box#id = ppm_CreateBox(notex+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  258.               call ppm_SetSize(20)
  259.               call ppm_TextIntoBox(box#id, 'd')
  260.             end
  261.             else
  262.             do
  263.               call ppm_SetSize(25)
  264.               box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26-yv, 0.3, 0.9, 0)
  265.               call ppm_SetSize(20)
  266.               call ppm_TextIntoBox(box#id, 'd')
  267.             end
  268.            select
  269.                when nn == '1' then
  270.                do
  271.                xw = xg
  272.                notex = notex+xw
  273.                end
  274.                when nn == '2' then
  275.                do
  276.                xw = xg/2
  277.                notex = notex+xw
  278.                end
  279.                when nn == '4' then
  280.                do
  281.                xw = xg/4
  282.                notex = notex+xw
  283.                end
  284.                when nn == '8' then
  285.                do
  286.                xw = xg/8
  287.                notex = notex+xw
  288.                end
  289.                when nn == '16' then
  290.                do
  291.                xw  = xg/16
  292.                notex = notex+xw
  293.                end
  294.                when nn == 't' then
  295.                do
  296.                xw  = 0.2
  297.                notex = notex+xw
  298.                end
  299.                when nn == '0' then
  300.                do
  301.                end
  302.                otherwise
  303.                do
  304.                 call ppm_ClearStatus()
  305.                 exit_msg("Da war ein Fehler")
  306.                end
  307.            end
  308.            if notex >=18.7 then
  309.                do
  310.                  notex = 2.5
  311.                  zz = zz + zdist
  312.